package com.gxa.worker.recycling.service;

import com.gxa.core.recycling.exception.BusinessException;
import com.gxa.core.recycling.pojo.Recycleorder;
import com.gxa.core.recycling.pojo.WasteItemVo;

import java.util.List;
import java.util.Map;

/**
 * @author Bei
 * @date 2021/12/2 16:51
 */
public interface RecycleorderService {

    /**
     * 廖泓宇
     * 查询已入库
     * @return
     */
    List<Map> selectByWarehoused(Long rid);

    /**
     * 廖泓宇
     * 查询回收订单状态为待接单
     * @return
     */
    List<Map> selectNewOrder(Long hid);

    /**
     * 廖泓宇
     * 查询回收订单状态为待回收
     * @return
     */
    List<Map> selectIngOreder(Long hid);

    /**
     * 廖泓宇
     * 查询回收订单状态为待入库
     * @return
     */
    List<Map> selectOverOrder(Long hid);

    /**
     * 廖泓宇
     * 查询回收订单状态为已取消
     * @return
     */
    List<Map> selectCancelOrder(Long hid);

    /**
     * 廖泓宇
     * 上门称重按钮
     * @param
     */
    void DoorToDoorWeighing(Recycleorder recycleorder) throws BusinessException;


    /**
     * 根据订单id查询相关详细信息
     * @param id
     * @return
     */
    Map<String,Object> getOrderDeepInfoById(Long id);

    /**
     * 接单按钮
     * 廖泓宇
     */
    void OrderReceiving(Recycleorder recycleorder) throws BusinessException;

    /**
     * 取消订单按钮
     * 廖泓宇
     */
    void CancellationOrder(Recycleorder recycleorder) throws BusinessException;

    /**
     * 联系TA按钮
     * 廖泓宇
     */
    String CallCustomer(String name);

    /**
     * 廖泓宇
     * 获取小区id
     */
    Long villAgeId(Long rid);

    /**
     * 廖泓宇
     * 统计待接单的记录数
     */
     Integer countNewOrder(Long hid);

    /**
     * 廖泓宇
     * 统计待回收的记录数
     */
    Integer countIngOrder(Long hid);

    /**
     * 廖泓宇
     * 统计已入库的记录数
     */
    Integer countYiRuOrder(Long hid);

    void problemFeedback(List list,String content,Long id);

    /**
     * 杨述波
     * @param orderId  订单Id  普通下单用户拥有
     * @param userId   下单用户Id  临创用户必填
     * @param item
     */
    void finishOrder(Long orderId, Long userId, Long recyclerId,List<WasteItemVo> item) throws BusinessException;

    /**
     * 廖泓宇
     * 获取小区名字
     */
    String findVillAgeName(Long id);

    /**
     * 廖泓宇
     * 我的页面中的回收员所属区域与头像返回
     */
    Map<String,Object> imgAndAddress(Long id);




}
